home *** CD-ROM | disk | FTP | other *** search
/ The Encyclopedia of Great Artists / Encyclopedia of Great Artists, The (1997)(Focus).iso / install / setupapi.inc / setupapi.bin
Text File  |  1995-03-30  |  27KB  |  800 lines

  1. GLOBAL hSetup AS INTEGER
  2. GLOBAL fFrameInit AS INTEGER
  3. GLOBAL fInstallInit AS INTEGER
  4. CONST SM_CXSCREEN = 0
  5. CONST SM_CYSCREEN = 1
  6. CONST WF_80x87    = 1024
  7. CONST WF_CPU186   =  128
  8. CONST WF_CPU286   =    2
  9. CONST WF_CPU386   =    4
  10. CONST WF_CPU486   =    8
  11. CONST WF_STANDARD =   16
  12. CONST WF_ENHANCED =   32
  13. CONST MB_OK          = 0
  14. CONST MB_ICONHAND    = 16
  15. CONST MB_TASKMODAL   = 8192
  16. DECLARE FUNCTION DoMsgBox LIB "mscomstf.dll" (lpText$,lpCaption$,wType%) As INTEGER
  17. DECLARE FUNCTION GetWindowsDirectory LIB "kernel" (szBuf$, cbBuf%) AS INTEGER
  18. DECLARE FUNCTION GetSystemDirectory LIB "kernel" (szBuf$, cbBuf%) AS INTEGER
  19. DECLARE FUNCTION GetProfileString LIB "kernel" (szSect$, szKey$, szDefault$, szBuf$, cbBuf%) AS INTEGER
  20. DECLARE FUNCTION GetVersion LIB "kernel" AS INTEGER
  21. DECLARE FUNCTION GetSystemMetrics LIB "user" (nIndex%) AS INTEGER
  22. DECLARE FUNCTION GetWinFlags LIB "kernel" AS LONG
  23. CONST cmoVital       = 1
  24. CONST cmoCopy        = 2
  25. CONST cmoUndo        = 4
  26. CONST cmoRoot        = 8
  27. CONST cmoDecompress  = 16
  28. CONST cmoTimeStamp   = 32
  29. CONST cmoReadOnly    = 64
  30. CONST cmoBackup      = 128
  31. CONST cmoForce       = 256
  32. CONST cmoRemove      = 512
  33. CONST cmoOverwrite   = 1024
  34. CONST cmoAppend      = 2048
  35. CONST cmoPrepend     = 4096
  36. CONST cmoNone        = 0
  37. CONST cmoAll         = 65535
  38. CONST femExists     = 0
  39. CONST femRead       = 1
  40. CONST femWrite      = 2
  41. CONST femReadWrite  = 3
  42. CONST ynrcNo         = 0
  43. CONST ynrcYes        = 1
  44. CONST ynrcErr1       = 2
  45. CONST ynrcErr2       = 3
  46. CONST ynrcErr3       = 4
  47. CONST ynrcErr4       = 5
  48. CONST ynrcErr5       = 6
  49. CONST ynrcErr6       = 7
  50. CONST ynrcErr7       = 8
  51. CONST ynrcErr8       = 9
  52. CONST ynrcErr9       = 10
  53. CONST grcOkay       = 0
  54. CONST grcNotOkay    = 1
  55. CONST grcUserQuit   = 48
  56. CONST cbSymValMax = 512
  57. CONST STFERR      = 1024   ''setup system error
  58. CONST STFQUIT     = 1025   ''user quit
  59. CONST scmOff      = 0
  60. CONST scmOnIgnore = 1
  61. CONST scmOnFatal  = 2
  62. DECLARE FUNCTION FParseFATPathIntoPieces LIB "mscomstf.dll" (szPath$, szVol$, cbVol%, szDir$, cbDir%, szFile$, cbFile%) AS INTEGER
  63. DECLARE FUNCTION FOpenInf LIB "mscomstf.dll" (szFile$, fCheck%, fCheckSyms%) AS INTEGER
  64. DECLARE FUNCTION FSetSilent LIB "mscomstf.dll" (mode%) AS INTEGER
  65. DECLARE FUNCTION FSetBeepingMode LIB "mscomstf.dll" (mode%) AS INTEGER
  66. DECLARE FUNCTION HShowWaitCursor LIB "msshlstf.dll" AS INTEGER
  67. DECLARE FUNCTION FRestoreCursor  LIB "msshlstf.dll" (hPrev%) AS INTEGER
  68. DECLARE FUNCTION FOpenLogFile    LIB "mscomstf.dll" (szFile$, fAppend%) AS INTEGER
  69. DECLARE FUNCTION FCloseLogFile   LIB "mscomstf.dll" AS INTEGER
  70. DECLARE FUNCTION FWriteToLogFile LIB "mscomstf.dll" (sz$, fRequire%) AS INTEGER
  71. DECLARE FUNCTION CbGetInfSectionKeyField LIB "mscomstf.dll" (szSect$, szKey$, iField%, szBuf$, cbBuf%) AS INTEGER
  72. DECLARE FUNCTION FMakeListInfSectionField LIB "mscomstf.dll" (szSym$, szSect$, iField%) AS INTEGER
  73. DECLARE FUNCTION FSetBitmap LIB "msshlstf.dll" (szDll$, Bitmap%) AS INTEGER
  74. DECLARE FUNCTION FSetAbout LIB "msshlstf.dll" (szAbout1$, szAbout2$) AS INTEGER
  75. DECLARE FUNCTION FDoDialog LIB "msuilstf.dll" (hwnd%, szDll$, Dlg%, szDlgProc$, HelpDlg%, szHelpProc$) AS INTEGER
  76. DECLARE FUNCTION FKillNDialogs LIB "msuilstf.dll" (n%) AS INTEGER
  77. DECLARE SUB SetWindowText LIB "User" (hwnd%, lpString$)
  78. DECLARE FUNCTION FSetSymbolValue LIB "msshlstf.dll" (szSymbol$, szValue$) AS INTEGER
  79. DECLARE FUNCTION FRemoveSymbol LIB "mscomstf.dll" (szSym$) AS INTEGER
  80. DECLARE FUNCTION CbGetSymbolValue LIB "mscomstf.dll" (szSymbol$, szValue$, Length%) AS INTEGER
  81. DECLARE FUNCTION UsGetListLength LIB "mscomstf.dll" (szSymbol$) AS INTEGER
  82. DECLARE FUNCTION CbGetListItem LIB "mscomstf.dll" (szListSymbol$, n%, szListItem$, cbMax%) AS INTEGER
  83. DECLARE FUNCTION FAddListItem LIB "mscomstf.dll" (szListSymbol$, szListItem$) AS INTEGER
  84. DECLARE FUNCTION FReplaceListItem LIB "mscomstf.dll" (szListSymbol$, n%, szListItem$) AS INTEGER
  85. DECLARE FUNCTION FSetSymbolToListOfInfKeys LIB "mscomstf.dll" (szSym$, szSect$, fNulls%) AS INTEGER
  86. DECLARE FUNCTION InitializeFrame LIB "msshlstf.dll" (szCmdLine$) AS INTEGER
  87. DECLARE FUNCTION HwndFrame LIB "msshlstf.dll" AS INTEGER
  88. DECLARE FUNCTION HinstFrame LIB "msshlstf.dll" AS INTEGER
  89. DECLARE SUB      ProSetPos LIB "msinsstf.dll" (x%, y%)
  90. DECLARE FUNCTION FCreateDir LIB "msinsstf.dll" (szDir$, cmo%) AS INTEGER
  91. DECLARE FUNCTION FRemoveDir LIB "msinsstf.dll" (szDir$, cmo%) AS INTEGER
  92. DECLARE FUNCTION FAddSectionFilesToCopyList LIB "mscomstf.dll" (szSect$, szSrc$, szDest$) AS INTEGER
  93. DECLARE FUNCTION FAddSectionKeyFileToCopyList LIB "mscomstf.dll" (szSect$, szKey$, szSrc$, szDest$) AS INTEGER
  94. DECLARE FUNCTION FAddSpecialFileToCopyList LIB "mscomstf.dll" (szSect$, szKey$, szSrc$, szDest$) AS INTEGER
  95. DECLARE FUNCTION GrcCopyFilesInCopyList LIB "msinsstf.dll" (hInstance%) AS INTEGER
  96. DECLARE FUNCTION FRemoveIniSection LIB "msinsstf.dll" (szFile$, szSect$, cmo%) AS INTEGER
  97. DECLARE FUNCTION FCreateIniKeyValue LIB "msinsstf.dll" (szFile$, szSect$, szKey$, szValue$, cmo%) AS INTEGER
  98. DECLARE FUNCTION FRemoveIniKey LIB "msinsstf.dll" (szFile$, szSect$, szKey$, cmo%) AS INTEGER
  99. DECLARE FUNCTION FCreateSysIniKeyValue LIB "msinsstf.dll" (szFile$, szSect$, szKey$, szValue$, cmo%) AS INTEGER
  100. DECLARE FUNCTION FCreateProgManGroup LIB "msinsstf.dll" (szGroup$, szPath$, cmo%) AS INTEGER
  101. DECLARE FUNCTION FCreateProgManItem LIB "msinsstf.dll" (szGroup$, szItem$, szCmd$, cmo%) AS INTEGER
  102. DECLARE FUNCTION FShowProgManGroup LIB "msinsstf.dll" (szGroup$, szCmd$, cmo%) AS INTEGER
  103. DECLARE FUNCTION FStampResource LIB "msinsstf.dll" (szSect$, szKey$, szDst$, wResType%, wResId%, szData$, cbData%) AS INTEGER
  104. DECLARE FUNCTION FDumpCopyListToFile LIB "msinsstf.dll" (szFile$) AS INTEGER
  105. DECLARE SUB      ResetCopyList LIB "msinsstf.dll"
  106. DECLARE FUNCTION LcbGetCopyListCost LIB "msinsstf.dll" (szExtraList$, szCostList$, szNeedList$) AS LONG
  107. DECLARE FUNCTION FAddDos5Help LIB "msinsstf.dll" (szProgName$, szProgHelp$, cmo%) AS INTEGER
  108. DECLARE FUNCTION FCopyOneFile LIB "msinsstf.dll" (szSrc$, szDest$, cmo%, fAppend%) AS INTEGER
  109. DECLARE FUNCTION YnrcRemoveFile LIB "msinsstf.dll" (szFullPathSrc$, cmo%) AS INTEGER
  110. DECLARE FUNCTION YnrcBackupFile LIB "msinsstf.dll" (szFullPath$, szBackup$, cmo%) AS INTEGER
  111. DECLARE FUNCTION FInitializeInstall LIB "msinsstf.dll" (hinst%, hwndFrame%) AS INTEGER
  112. DECLARE FUNCTION WFindFileUsingFileOpen LIB "msinsstf.dll" (szFile$, szBuf$, cbBuf%) AS INTEGER
  113. DECLARE FUNCTION FIsDirWritable LIB "msinsstf.dll" (szDir$) AS INTEGER
  114. DECLARE FUNCTION FIsFileWritable LIB "msinsstf.dll" (szFile$) AS INTEGER
  115. DECLARE FUNCTION FAddToBillboardList LIB "msinsstf.dll" (szDll$, idDlg%, szProc$, lTicks&) AS INTEGER
  116. DECLARE FUNCTION FClearBillboardList LIB "msinsstf.dll" AS INTEGER
  117. DECLARE FUNCTION FSetRestartDir LIB "msinsstf.dll" (szDir$) AS INTEGER
  118. DECLARE FUNCTION FRestartListEmpty LIB "msinsstf.dll" AS INTEGER
  119. DECLARE FUNCTION FExitExecRestart LIB "msinsstf.dll" AS INTEGER
  120. DECLARE FUNCTION SetCopyMode LIB "msinsstf.dll" (fMode%) AS INTEGER
  121. DECLARE FUNCTION GetCopyMode LIB "msinsstf.dll" AS INTEGER
  122. DECLARE FUNCTION SetDecompMode LIB "msinsstf.dll" (fMode%) AS INTEGER
  123. DECLARE FUNCTION GetDecompMode LIB "msinsstf.dll" AS INTEGER
  124. DECLARE FUNCTION SetSizeCheckMode LIB "msinsstf.dll" (scmMode%) AS INTEGER
  125. DECLARE FUNCTION FPrependToPath LIB "msinsstf.dll" (szSrc$, szDst$, szDir$, cmo%) AS INTEGER
  126. DECLARE FUNCTION SetTimeValue LIB "msinsstf.dll" (usHours%, usMinutes%, usSeconds%) AS INTEGER
  127. DECLARE FUNCTION FMaximize LIB "mscuistf.dll" (hWnd%, bMax%, bBorder%) AS INTEGER
  128. DECLARE SUB SetBitmap(szDll$, Bitmap%)
  129. DECLARE SUB SetAbout(szAbout1$, szAbout2$)
  130. DECLARE FUNCTION UIStartDlg(szDll$, Dlg%, szDlgProc$, HelpDlg%, szHelpProc$) AS STRING
  131. DECLARE SUB UIPop (n%)
  132. DECLARE SUB UIPopAll
  133. DECLARE SUB SetTitle (sz$)
  134. DECLARE SUB ReadInfFile (szFile$)
  135. DECLARE SUB SetSymbolValue (szSymbol$, szValue$)
  136. DECLARE SUB RemoveSymbol (szSym$)
  137. DECLARE FUNCTION GetSymbolValue (szSymbol$) AS STRING
  138. DECLARE FUNCTION GetListLength(szSymbol$) AS INTEGER
  139. DECLARE SUB MakeListFromSectionKeys (szSymbol$, szSect$)
  140. DECLARE FUNCTION GetListItem(szSymbol$, n%) AS STRING
  141. DECLARE SUB AddListItem(szSymbol$, szItem$)
  142. DECLARE SUB ReplaceListItem(szSymbol$, n%, szItem$)
  143. DECLARE FUNCTION InitFrame (szCmdLine$) AS INTEGER
  144. DECLARE FUNCTION InitSetup (szCmdLine$) AS INTEGER
  145. DECLARE FUNCTION ShowWaitCursor AS INTEGER
  146. DECLARE SUB RestoreCursor (hPrev%)
  147. DECLARE FUNCTION SetBeepingMode (mode%) AS INTEGER
  148. DECLARE FUNCTION SetSilentMode (mode%) AS INTEGER
  149. DECLARE FUNCTION GetSectionKeyDate (szSect$, szKey$) AS STRING
  150. DECLARE FUNCTION GetSectionKeyFilename (szSect$, szKey$) AS STRING
  151. DECLARE FUNCTION GetSectionKeySize (szSect$, szKey$) AS LONG
  152. DECLARE FUNCTION GetSectionKeyVersion (szSect$, szKey$) AS STRING
  153. DECLARE SUB MakeListFromSectionDate (szSym$, szSect$)
  154. DECLARE SUB MakeListFromSectionFilename (szSym$, szSect$)
  155. DECLARE SUB MakeListFromSectionSize (szSym$, szSect$)
  156. DECLARE SUB MakeListFromSectionVersion (szSym$, szSect$)
  157. DECLARE SUB CreateDir (szDir$, cmo%)
  158. DECLARE SUB RemoveDir (szDir$, cmo%)
  159. DECLARE SUB AddSectionFilesToCopyList (szSect$, szSrc$, szDest$)
  160. DECLARE SUB AddSectionKeyFileToCopyList (szSect$, szKey$, szSrc$, szDest$)
  161. DECLARE SUB AddSpecialFileToCopyList (szSect$, szKey$, szSrc$, szDest$)
  162. DECLARE SUB CopyFilesInCopyList
  163. DECLARE SUB RemoveIniSection (szFile$, szSect$, cmo%)
  164. DECLARE SUB CreateIniKeyValue (szFile$, szSect$, szKey$, szValue$, cmo%)
  165. DECLARE SUB RemoveIniKey (szFile$, szSect$, szKey$, cmo%)
  166. DECLARE SUB CreateSysIniKeyValue (szFile$, szSect$, szKey$, szValue$, cmo%)
  167. DECLARE SUB CreateProgmanGroup (szGroup$, szPath$, cmo%)
  168. DECLARE SUB CreateProgmanItem (szGroup$, szItem$, szCmd$, szOther$, cmo%)
  169. DECLARE SUB ShowProgmanGroup (szGroup$, Cmd%, cmo%)
  170. DECLARE SUB StampResource (szSect$, szKey$, szDst$, wResType%, wResId%, szData$, cbData%)
  171. DECLARE SUB DumpCopyList (szFile$)
  172. DECLARE SUB ClearCopyList
  173. DECLARE FUNCTION GetCopyListCost (szExtraList$, szCostList$, szNeedList$) AS LONG
  174. DECLARE SUB AddDos5Help (szProgName$, szProgHelp$, cmo%)
  175. DECLARE SUB CopyFile (szFullPathSrc$, szFullPathDst$, cmo%, fAppend%)
  176. DECLARE SUB RemoveFile (szFullPathSrc$, cmo%)
  177. DECLARE SUB BackupFile (szFullPath$, szBackup$)
  178. DECLARE SUB RenameFile (szFullPath$, szBackup$)
  179. DECLARE SUB InitInstall
  180. DECLARE SUB AddToBillboardList (szDll$, idDlg%, szProc$, lTicks&)
  181. DECLARE SUB AddBlankToBillboardList (lTicks&)
  182. DECLARE SUB ClearBillboardList
  183. DECLARE SUB OpenLogFile (szFile$, fAppend%)
  184. DECLARE SUB CloseLogFile
  185. DECLARE SUB WriteToLogFile (szStr$)
  186. DECLARE SUB SetCopyGaugePosition (x%, y%)
  187. DECLARE SUB SetRestartDir(szDir$)
  188. DECLARE FUNCTION RestartListEmpty AS INTEGER
  189. DECLARE FUNCTION ExitExecRestart AS INTEGER
  190. DECLARE FUNCTION FindFileUsingFileOpen (szFile$) AS STRING
  191. DECLARE FUNCTION IsDirWritable (szDir$) AS INTEGER
  192. DECLARE FUNCTION IsFileWritable (szFile$) AS INTEGER
  193. DECLARE FUNCTION GetNthFieldFromIniString (szLine$, iField%) AS STRING
  194. DECLARE SUB PrependToPath (szSrc$, szDst$, szDir$, cmo%)
  195. DECLARE FUNCTION GetWindowsMajorVersion AS INTEGER
  196. DECLARE FUNCTION GetWindowsMinorVersion AS INTEGER
  197. DECLARE FUNCTION GetWindowsMode AS INTEGER
  198. DECLARE FUNCTION GetWindowsDir  AS STRING
  199. DECLARE FUNCTION GetWindowsSysDir AS STRING
  200. DECLARE FUNCTION IsWindowsShared AS INTEGER
  201. DECLARE FUNCTION GetScreenWidth AS INTEGER
  202. DECLARE FUNCTION GetScreenHeight AS INTEGER
  203.  
  204. FUNCTION InitSetup(szCmdLine$) STATIC AS INTEGER
  205.     fFrameInit = 0
  206.     fInstallInit = 0
  207.     IF hSetup > 0 THEN
  208.     END IF
  209.     i% = InitFrame(szCmdLine$)
  210.     fFrameInit = 1
  211.     InitInstall
  212.     fInstallInit = 1
  213.     InitSetup = i%
  214. END FUNCTION
  215.  
  216. FUNCTION InitFrame(szCmdLine$) STATIC AS INTEGER
  217.     IF hSetup > 0 THEN
  218.     ELSE
  219.         i% = InitializeFrame(szCmdLine$)
  220.         IF i% = -1 THEN
  221.             END   '' NOT an error - Usage (/?) or Command line copy operation
  222.         ELSEIF i% = 0 THEN
  223.             END
  224.         ELSE
  225.             InitFrame = i%
  226.         END IF
  227.     END IF
  228. END FUNCTION
  229.  
  230. SUB SetBitmap(szDll$, Bitmap%) STATIC
  231.     IF FSetBitmap(szDll$, Bitmap%) = 0 THEN
  232.         ERROR STFERR
  233.     END IF
  234. END SUB
  235.  
  236. SUB SetAbout(szAbout1$, szAbout2$) STATIC
  237.     IF FSetAbout(szAbout1$, szAbout2$) = 0 THEN
  238.         ERROR STFERR
  239.     END IF
  240. END SUB
  241.  
  242. SUB SetTitle(sz$) STATIC
  243.     SetWindowText HwndFrame(), sz$
  244. END SUB
  245.  
  246. SUB ReadInfFile (szFile$) STATIC
  247.     IF FOpenInf(szFile$, 1, 0) = 0 THEN
  248.         ERROR STFERR
  249.     END IF
  250. END SUB
  251.  
  252. FUNCTION UIStartDlg(szDll$, Dlg%, szDlgProc$, HelpDlg%, szHelpProc$) STATIC AS STRING
  253.     IF FDoDialog(HwndFrame(), szDll$, Dlg%, szDlgProc$, HelpDlg%, szHelpProc$) = 0 THEN
  254.         ERROR STFERR
  255.     ELSE
  256.         UIStartDlg = GetSymbolValue("DLGEVENT")
  257.     END IF
  258. END FUNCTION
  259.  
  260. SUB UIPop (n%) STATIC
  261.     IF FKillNDialogs(n%) = 0 THEN
  262.         ERROR STFERR
  263.     END IF
  264. END SUB
  265.  
  266. SUB UIPopAll STATIC
  267.     IF FKillNDialogs(65535) = 0 THEN
  268.         ERROR STFERR
  269.     END IF
  270. END SUB
  271.  
  272. FUNCTION GetSymbolValue(szSymbol$) STATIC AS STRING
  273.     szValue$ = string$(cbSymValMax,32)
  274.     Length% = CbGetSymbolValue(szSymbol$, szValue$, cbSymValMax)
  275.     GetSymbolValue = szValue$
  276.     IF Length% >= cbSymValMax THEN
  277.         res% = DoMsgBox("Buffer Overflow", "MS-Setup Error", MB_ICONHAND+MB_OK)
  278.         ERROR STFERR
  279.     END IF
  280.     IF szSymbol$ = "" THEN
  281.         ERROR STFERR
  282.     END IF
  283.     szValue$ = ""
  284. END FUNCTION
  285.  
  286. FUNCTION GetListLength(szSymbol$) STATIC AS INTEGER
  287.     GetListLength = UsGetListLength(szSymbol$)
  288.     IF szSymbol$ = "" THEN
  289.         ERROR STFERR
  290.     END IF
  291. END FUNCTION
  292.  
  293. FUNCTION GetListItem(szListSymbol$, nItem%) STATIC AS STRING
  294.     szListItem$ = string$(cbSymValMax,32)
  295.     Length% = CbGetListItem(szListSymbol$, nItem%, szListItem$, cbSymValMax)
  296.     GetListItem = szListItem$
  297.     IF Length% >= cbSymValMax THEN
  298.         res% = DoMsgBox("Buffer Overflow", "MS-Setup Error", MB_ICONHAND+MB_OK)
  299.         ERROR STFERR
  300.     END IF
  301.     IF szListSymbol$ = "" THEN
  302.         ERROR STFERR
  303.     END IF
  304.     if nItem% <= 0 or nItem% > GetListLength(szListSymbol$) then
  305.         ERROR STFERR
  306.     end if
  307.     szListItem$ = ""
  308. END FUNCTION
  309.  
  310. SUB AddListItem(szSymbol$, szItem$) STATIC
  311.     IF FAddListItem(szSymbol$, szItem$) = 0 THEN
  312.         ERROR STFERR
  313.     END IF
  314. END SUB
  315.  
  316. SUB ReplaceListItem(szSymbol$, n%, szItem$) STATIC
  317.     IF FReplaceListItem(szSymbol$, n%, szItem$) = 0 THEN
  318.         ERROR STFERR
  319.     END IF
  320. END SUB
  321.  
  322. SUB MakeListFromSectionKeys(szSymbol$, szSect$) STATIC
  323.     IF FSetSymbolToListOfInfKeys(szSymbol$, szSect$, 1) = 0 THEN
  324.         ERROR STFERR
  325.     END IF
  326. END SUB
  327.  
  328. SUB SetSymbolValue(szSymbol$, szValue$) STATIC
  329.     IF FSetSymbolValue(szSymbol$, szValue$) = 0 THEN
  330.         ERROR STFERR
  331.     END IF
  332. END SUB
  333.  
  334. SUB RemoveSymbol(szSym$) STATIC
  335.     IF FRemoveSymbol(szSym$) = 0 THEN
  336.         ERROR STFERR
  337.     END IF
  338. END SUB
  339.  
  340. FUNCTION ShowWaitCursor STATIC AS INTEGER
  341.     ShowWaitCursor = HShowWaitCursor
  342. END FUNCTION
  343.  
  344. SUB RestoreCursor (hPrev%) STATIC
  345.     i% = FRestoreCursor(hPrev%)
  346.     IF i% = 0 THEN
  347.         ERROR STFERR
  348.     END IF
  349. END SUB
  350.  
  351. FUNCTION SetBeepingMode (mode%) STATIC AS INTEGER
  352.     SetBeepingMode = FSetBeepingMode(mode%)
  353. END FUNCTION
  354.  
  355. FUNCTION SetSilentMode (mode%) STATIC AS INTEGER
  356.     SetSilentMode = FSetSilent(mode%)
  357. END FUNCTION
  358.  
  359. FUNCTION GetSectionKeyDate (szSect$, szKey$) STATIC AS STRING
  360.     szBuf$ = string$(128, 32)
  361.     Length% = CbGetInfSectionKeyField(szSect$, szKey$, 5, szBuf$, 128)
  362.     IF Length% >= 128 THEN
  363.         res% = DoMsgBox("Buffer Overflow", "MS-Setup Error", MB_ICONHAND+MB_OK)
  364.         ERROR STFERR
  365.     END IF
  366.     IF Length% = -1 THEN
  367.         ERROR STFERR
  368.     END IF
  369.     GetSectionKeyDate = szBuf$
  370.     szBuf$ = ""
  371. END FUNCTION
  372.  
  373. FUNCTION GetSectionKeyFilename (szSect$, szKey$) STATIC AS STRING
  374.     szBuf$ = string$(128, 32)
  375.     Length% = CbGetInfSectionKeyField(szSect$, szKey$, 1, szBuf$, 128)
  376.     IF Length% >= 128 THEN
  377.         res% = DoMsgBox("Buffer Overflow", "MS-Setup Error", MB_ICONHAND+MB_OK)
  378.         ERROR STFERR
  379.     END IF
  380.  
  381.     IF Length% = -1 THEN
  382.         ERROR STFERR
  383.     END IF
  384.     GetSectionKeyFilename = szBuf$
  385.     szBuf$ = ""
  386. END FUNCTION
  387.  
  388. FUNCTION GetSectionKeySize (szSect$, szKey$) STATIC AS LONG
  389.     szBuf$ = string$(128, 32)
  390.     Length% = CbGetInfSectionKeyField(szSect$, szKey$, 15, szBuf$, 128)
  391.     IF Length% >= 128 THEN
  392.         res% = DoMsgBox("Buffer Overflow", "MS-Setup Error", MB_ICONHAND+MB_OK)
  393.         ERROR STFERR
  394.     END IF
  395.     IF Length% = -1 THEN
  396.         ERROR STFERR
  397.     END IF
  398.     GetSectionKeySize = VAL(szBuf$)
  399.     szBuf$ = ""
  400. END FUNCTION
  401.  
  402. FUNCTION GetSectionKeyVersion (szSect$, szKey$) STATIC AS STRING
  403.     szBuf$ = string$(128, 32)
  404.     Length% = CbGetInfSectionKeyField(szSect$, szKey$, 19, szBuf$, 128)
  405.     IF Length% >= 128 THEN
  406.         res% = DoMsgBox("Buffer Overflow", "MS-Setup Error", MB_ICONHAND+MB_OK)
  407.         ERROR STFERR
  408.     END IF
  409.     IF Length% = -1 THEN
  410.         ERROR STFERR
  411.     END IF
  412.     GetSectionKeyVersion = szBuf$
  413.     szBuf$ = ""
  414. END FUNCTION
  415.  
  416. SUB MakeListFromSectionDate (szSym$, szSect$) STATIC
  417.     IF FMakeListInfSectionField(szSym$, szSect$, 5) = 0 THEN
  418.         ERROR STFERR
  419.     END IF
  420. END SUB
  421.  
  422. SUB MakeListFromSectionFilename (szSym$, szSect$) STATIC
  423.     IF FMakeListInfSectionField(szSym$, szSect$, 1) = 0 THEN
  424.         ERROR STFERR
  425.     END IF
  426. END SUB
  427.  
  428. SUB MakeListFromSectionSize (szSym$, szSect$) STATIC
  429.     IF FMakeListInfSectionField(szSym$, szSect$, 15) = 0 THEN
  430.         ERROR STFERR
  431.     END IF
  432. END SUB
  433.  
  434. SUB MakeListFromSectionVersion (szSym$, szSect$) STATIC
  435.     IF FMakeListInfSectionField(szSym$, szSect$, 19) = 0 THEN
  436.         ERROR STFERR
  437.     END IF
  438. END SUB
  439.  
  440. SUB InitInstall STATIC
  441.     IF hSetup > 0 THEN
  442.     ELSEIF FInitializeInstall(HinstFrame(), HwndFrame()) = 0 THEN
  443.         END
  444.     END IF
  445. END SUB
  446.  
  447. SUB CreateDir (szDir$, cmo%) STATIC
  448.     IF FCreateDir(szDir$, cmo%) = 0 THEN
  449.         ERROR STFERR
  450.     END IF
  451. END SUB
  452.  
  453. SUB RemoveDir (szDir$, cmo%) STATIC
  454.     IF FRemoveDir(szDir$, cmo%) = 0 THEN
  455.         ERROR STFERR
  456.     END IF
  457. END SUB
  458.  
  459. SUB RemoveIniSection (szFile$, szSect$, cmo%) STATIC
  460.     IF FRemoveIniSection(szFile$, szSect$, cmo%) = 0 THEN
  461.         ERROR STFERR
  462.     END IF
  463. END SUB
  464.  
  465. SUB CreateIniKeyValue (szFile$, szSect$, szKey$, szValue$, cmo%) STATIC
  466.     IF FCreateIniKeyValue(szFile$, szSect$, szKey$, szValue$, cmo%) = 0 THEN
  467.         ERROR STFERR
  468.     END IF
  469. END SUB
  470.  
  471. SUB RemoveIniKey (szFile$, szSect$, szKey$, cmo%) STATIC
  472.     IF FRemoveIniKey(szFile$, szSect$, szKey$, cmo%) = 0 THEN
  473.         ERROR STFERR
  474.     END IF
  475. END SUB
  476.  
  477. SUB CreateSysIniKeyValue (szFile$, szSect$, szKey$, szValue$, cmo%) STATIC
  478.     IF FCreateSysIniKeyValue(szFile$, szSect$, szKey$, szValue$, cmo%) = 0 THEN
  479.         ERROR STFERR
  480.     END IF
  481. END SUB
  482.  
  483. SUB CreateProgmanGroup (szGroup$, szPath$, cmo%) STATIC
  484.     IF FCreateProgManGroup(szGroup$, szPath$, cmo%) = 0 THEN
  485.         ERROR STFERR
  486.     END IF
  487. END SUB
  488.  
  489. SUB ShowProgmanGroup (szGroup$, Cmd%, cmo%) STATIC
  490.     IF FShowProgManGroup(szGroup$, STR$(Cmd%), cmo%) = 0 THEN
  491.         ERROR STFERR
  492.     END IF
  493. END SUB
  494.  
  495. SUB StampResource (szSect$, szKey$, szDst$, wResType%, wResId%, szData$, cbData%) STATIC
  496.     IF FStampResource (szSect$, szKey$, szDst$, wResType%, wResId%, szData$, cbData%) = 0 THEN
  497.         ERROR STFERR
  498.     END IF
  499. END SUB
  500.  
  501. SUB DumpCopyList (szFile$) STATIC
  502.     IF FDumpCopyListToFile (szFile$) = 0 THEN
  503.         ERROR STFERR
  504.     END IF
  505. END SUB
  506.  
  507. SUB ClearCopyList STATIC
  508.     ResetCopyList
  509. END SUB
  510.  
  511. FUNCTION GetCopyListCost (szExtraList$, szCostList$, szNeedList$) STATIC AS LONG
  512.     lNeed& = LcbGetCopyListCost (szExtraList$, szCostList$, szNeedList$)
  513.     IF lNeed& < 0 THEN
  514.         ERROR STFERR
  515.     END IF
  516.     GetCopyListCost = lNeed&
  517. END FUNCTION
  518.  
  519. SUB CreateProgmanItem (szGroup$, szItem$, szCmd$, szOther$, cmo%) STATIC
  520.     szItemNew$ = szItem$
  521.     IF szOther$ <> "" THEN
  522.         szItemNew$ = szItem$ + "," + szOther$
  523.     END IF
  524.     IF FCreateProgManItem(szGroup$, szItemNew$, szCmd$, cmo%) = 0 THEN
  525.         ERROR STFERR
  526.     END IF
  527.     szItemNew$ = ""
  528. END SUB
  529.  
  530. SUB AddDos5Help (szProgName$, szProgHelp$, cmo%) STATIC
  531.     IF FAddDos5Help (szProgName$, szProgHelp$, cmo%) = 0 THEN
  532.         ERROR STFERR
  533.     END IF
  534. END SUB
  535.  
  536. SUB CopyFilesInCopyList STATIC
  537.     grc% = GrcCopyFilesInCopyList (HinstFrame())
  538.  
  539.     IF grc% = grcUserQuit THEN
  540.         ERROR STFQUIT
  541.     ELSEIF grc% > 0 THEN
  542.         ERROR STFERR
  543.     END IF
  544. END SUB
  545.  
  546. SUB CopyFile (szFullPathSrc$, szFullPathDst$, cmo%, fAppend%) STATIC
  547.     IF  FCopyOneFile(szFullPathSrc$, szFullPathDst$, (cmo OR cmoCopy), fAppend%) = 0 THEN
  548.         ERROR STFERR
  549.     END IF
  550. END SUB
  551.  
  552. SUB RemoveFile (szFullPathSrc$, cmo%) STATIC
  553.     IF  YnrcRemoveFile(szFullPathSrc$, cmo%) = ynrcNo THEN
  554.         ERROR STFERR
  555.     END IF
  556. END SUB
  557.  
  558. SUB BackupFile (szFullPath$, szBackup$) STATIC
  559.     IF YnrcBackupFile(szFullPath$, szBackup$, cmoNone) = ynrcNo THEN
  560.         ERROR STFERR
  561.     END IF
  562. END SUB
  563.  
  564. SUB RenameFile (szFullPath$, szBackup$) STATIC
  565.     IF YnrcBackupFile(szFullPath$, szBackup$, cmoNone) = ynrcNo THEN
  566.         ERROR STFERR
  567.     END IF
  568. END SUB
  569.  
  570. SUB AddSectionFilesToCopyList (szSect$, szSrc$, szDest$) STATIC
  571.     IF FAddSectionFilesToCopyList (szSect$, szSrc$, szDest$) = 0 THEN
  572.         ERROR STFERR
  573.     END IF
  574. END SUB
  575.  
  576. SUB AddSectionKeyFileToCopyList (szSect$, szKey$, szSrc$, szDest$) STATIC
  577.     IF FAddSectionKeyFileToCopyList (szSect$, szKey$, szSrc$, szDest$) = 0 THEN
  578.         ERROR STFERR
  579.     END IF
  580. END SUB
  581.  
  582. SUB AddSpecialFileToCopyList (szSect$, szKey$, szSrc$, szDest$) STATIC
  583.     IF FAddSpecialFileToCopyList (szSect$, szKey$, szSrc$, szDest$) = 0 THEN
  584.         ERROR STFERR
  585.     END IF
  586. END SUB
  587.  
  588. SUB AddToBillboardList (szDll$, idDlg%, szProc$, lTicks&) STATIC
  589.     IF FAddToBillboardList(szDll$, idDlg%, szProc$, lTicks&) = 0 THEN
  590.         ERROR STFERR
  591.     END IF
  592. END SUB
  593.  
  594. SUB AddBlankToBillboardList (lTicks&) STATIC
  595.     IF FAddToBillboardList(NULL, 0, NULL, lTicks&) = 0 THEN
  596.         ERROR STFERR
  597.     END IF
  598. END SUB
  599.  
  600. SUB ClearBillboardList STATIC
  601.     IF FClearBillboardList = 0 THEN
  602.         ERROR STFERR
  603.     END IF
  604. END SUB
  605.  
  606. SUB OpenLogFile (szFile$, fAppend%) STATIC
  607.     IF FOpenLogFile(szFile$, fAppend%) = 0 THEN
  608.         ERROR STFERR
  609.     END IF
  610. END SUB
  611.  
  612. SUB CloseLogFile STATIC
  613.     IF FCloseLogFile() = 0 THEN
  614.         ERROR STFERR
  615.     END IF
  616. END SUB
  617.  
  618. SUB WriteToLogFile (szStr$) STATIC
  619.     IF FWriteToLogFile(szStr$, 1) = 0 THEN
  620.         ERROR STFERR
  621.     END IF
  622. END SUB
  623.  
  624. SUB SetCopyGaugePosition (x%, y%) STATIC
  625.     ProSetPos x%, y%
  626. END SUB
  627.  
  628. FUNCTION FindFileUsingFileOpen (szFile$) STATIC AS STRING
  629.     szBuf$ = STRING$(512, 32)
  630.     wRet% = WFindFileUsingFileOpen(szFile$, szBuf$, len(szBuf$))
  631.     IF wRet% = 0 THEN
  632.         FindFileUsingFileOpen = szBuf$
  633.     ELSEIF wRet% = 1 THEN
  634.         FindFileUsingFileOpen = ""
  635.     ELSE
  636.         ERROR STFERR
  637.     END IF
  638.     szBuf$ = ""
  639. END FUNCTION
  640.  
  641. FUNCTION IsDirWritable (szDir$) STATIC AS INTEGER
  642.     IsDirWritable = FIsDirWritable(szDir$)
  643. END FUNCTION
  644.  
  645. FUNCTION IsFileWritable (szFile$) STATIC AS INTEGER
  646.     IsFileWritable = FIsFileWritable(szFile$)
  647. END FUNCTION
  648.  
  649. FUNCTION GetNthFieldFromIniString (szLine$, iField%) STATIC AS STRING
  650.     IF iField% < 1 THEN
  651.         ERROR STFERR
  652.     END IF
  653.     szStart$ = szLine$
  654.     IF iField% <> 1 THEN
  655.         FOR i% = 2 TO iField% STEP 1
  656.             iNew% = INSTR(szStart$, ",")
  657.             IF iNew% = 0 THEN
  658.                 GetNthFieldFromIniString = ""
  659.                 GOTO _GNFFIS_END
  660.             END IF
  661.             szStart$ = MID$(szStart$, (iNew% + 1))
  662.         NEXT
  663.     END IF
  664.     iNew% = INSTR(szStart$, ",")
  665.     IF iNew% <> 0 THEN
  666.         szStart$ = MID$(szStart$, 1, (iNew% - 1))
  667.     END IF
  668.     GetNthFieldFromIniString = LTRIM$(RTRIM$(szStart$))
  669.  
  670. _GNFFIS_END:
  671.  
  672. END FUNCTION
  673.  
  674. FUNCTION GetWindowsMajorVersion STATIC AS INTEGER
  675.     GetWindowsMajorVersion = GetVersion() MOD 256
  676. END FUNCTION
  677.  
  678. FUNCTION GetWindowsMinorVersion STATIC AS INTEGER
  679.     GetWindowsMinorVersion = GetVersion() / 256
  680. END FUNCTION
  681.  
  682. FUNCTION GetWindowsMode STATIC AS INTEGER
  683.     GetWindowsMode = 0
  684.     longTmp& = GetWinFlags()
  685.     IF longTmp& AND WF_STANDARD THEN
  686.         GetWindowsMode = 1
  687.     ELSEIF longTmp& AND WF_ENHANCED THEN
  688.         GetWindowsMode = 2
  689.     END IF
  690. END FUNCTION
  691.  
  692. FUNCTION GetWindowsDir STATIC AS STRING
  693.     szBuf$ = string$(256, 32)
  694.     cbBuf% = GetWindowsDirectory(szBuf$, 256)
  695.     IF cbBuf% = 0 THEN
  696.         GetWindowsDir = ""
  697.         ERROR STFERR
  698.     ELSE
  699.         IF cbBuf% > 255 THEN
  700.             res% = DoMsgBox("Buffer Overflow", "MS-Setup Error", MB_ICONHAND+MB_OK)
  701.             ERROR STFERR
  702.         END IF
  703.         szBuf$ = RTRIM$(szBuf$)
  704.         IF MID$(szBuf$, 1, 1) = "\" THEN
  705.             'szBuf$ = MID$(CURDIR$, 1, 2) + szBuf$
  706.             szBuf$ = MID$(GetWindowsSysDir, 1, 2) + szBuf$
  707.         ELSEIF MID$(szBuf$, 2, 1) <> ":" THEN
  708.             szBuf$ = MID$(GetWindowsSysDir, 1, 3) + szBuf$
  709.         END IF
  710.         IF MID$(szBuf$, LEN(szBuf$), 1) <> "\" THEN
  711.             szBuf$ = szBuf$ + "\"
  712.         END IF
  713.         GetWindowsDir = szBuf$
  714.     END IF
  715.  
  716.     szBuf$ = ""
  717. END FUNCTION
  718.  
  719. FUNCTION GetWindowsSysDir STATIC AS STRING
  720.     szBuf$ = string$(256, 32)
  721.     cbBuf% = GetSystemDirectory(szBuf$, 256)
  722.     IF cbBuf% = 0 THEN
  723.         ERROR STFERR
  724.     ELSE
  725.         IF cbBuf% > 255 THEN
  726.             res% = DoMsgBox("Buffer Overflow", "MS-Setup Error", MB_ICONHAND+MB_OK)
  727.             ERROR STFERR
  728.         END IF
  729.         szBuf$ = RTRIM$(szBuf$)
  730.         IF MID$(szBuf$, 1, 1) = "\" THEN
  731.             szBuf$ = MID$(CURDIR$, 1, 2) + szBuf$
  732.         ELSEIF MID$(szBuf$, 2, 1) <> ":" THEN
  733.             szBuf$ = MID$(CURDIR$, 1, 3) + szBuf$
  734.         END IF
  735.         IF MID$(szBuf$, LEN(szBuf$), 1) <> "\" THEN
  736.             szBuf$ = szBuf$ + "\"
  737.         END IF
  738.         GetWindowsSysDir = szBuf$
  739.     END IF
  740.     szBuf$ = ""
  741. END FUNCTION
  742.  
  743. FUNCTION IsWindowsShared STATIC AS INTEGER
  744.     szWin$ = UCASE$(GetWindowsDir())
  745.     szSys$ = UCASE$(GetWindowsSysDir())
  746.     IF len(szWin$) = 0 THEN
  747.         ERROR STFERR
  748.     END IF
  749.     IF len(szSys$) <= len(szWin$) THEN
  750.         IsWindowsShared = 1
  751.     ELSE
  752.         szSys$ = MID$(szSys$, 1, len(szWin$))
  753.         IF szWin$ = szSys$ THEN
  754.             IsWindowsShared = 0
  755.         ELSE
  756.             IsWindowsShared = 1
  757.         END IF
  758.     END IF
  759. END FUNCTION
  760.  
  761. FUNCTION GetScreenWidth STATIC AS INTEGER
  762.     GetScreenWidth = GetSystemMetrics(SM_CXSCREEN)
  763. END FUNCTION
  764.  
  765. FUNCTION GetScreenHeight STATIC AS INTEGER
  766.     GetScreenHeight = GetSystemMetrics(SM_CYSCREEN)
  767. END FUNCTION
  768.  
  769. SUB SetRestartDir (szDir$) STATIC
  770.     IF FSetRestartDir(szDir$) = 0 THEN
  771.         ERROR STFERR
  772.     END IF
  773. END SUB
  774.  
  775. FUNCTION RestartListEmpty STATIC AS INTEGER
  776.     IF FRestartListEmpty() = 0 THEN
  777.         RestartListEmpty = 0
  778.     ELSE
  779.         RestartListEmpty = 1
  780.     END IF
  781. END FUNCTION
  782.  
  783. FUNCTION ExitExecRestart STATIC AS INTEGER
  784.     ExitExecRestart = FExitExecRestart
  785. END FUNCTION
  786.  
  787. SUB PrependToPath (szSrc$, szDst$, szDir$, cmo%) STATIC
  788.     IF FPrependToPath (szSrc$, szDst$, szDir$, cmo%) = 0 THEN
  789.         ERROR STFERR
  790.     END IF
  791. END SUB
  792.  
  793. TRAP CleanupTrap From "MSSHLSTF.DLL"
  794.  
  795. End Trap
  796.  
  797. hSetup = InitSetup(COMMAND$)
  798.  
  799. ON ERROR GOTO QUIT
  800.